[% setvar title The Perl 6 summary for the fortnight ending 2005-06-21 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 summary for the fortnight ending 2005-06-21'></a><h1>The Perl 6 summary for the fortnight ending 2005-06-21</h1>
<p>Surprise! It's me again. You may be wondering what happened to last week's
summary (I know I was) and where Matt had gone. Well, I'm not entirely sure
where exactly he is now, but last week was moving week for him.</p>
<p>Those of you reading this on the mailing lists may also be wondering why this
summary is so late. Um... three words: World of Warcraft.</p>
<a name='This week in perl6-compiler'></a><h1>This week in perl6-compiler</h1>
<p>As a Summarizer, when you see the 'last fortnight' view of a mailing list
containing 21 messages, several thoughts spring, unbidden, to your mind: Is my
mail broken again? Has everyone given up? Phew, this group won't
take long to do.</p>
<p>It turns out that the answer to both of those questions is &quot;No.&quot; What actually
happened was that most of the stuff that normally happens in mail happened at
the Austrian Perl Workshop and Leo Tötsch's house, with a side order of IRC
conversation. Oh, and a bunch of spin off threads in p6l and p6i.</p>
<p>So, in the last fortnight Pugs reached the point where it has a (mostly)
working Parrot back end and BÁRTHAZI Andras wondered if we shouldn't start a
perl6-general mailing list.</p>
<p><a href='http://use.perl.org/~autrijus/journal/' target='_blank'>use.perl.org</a> - Autrijus's Pugs development journal</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.61.0506141548000.13300@wish.hu' target='_blank'>groups.google.com</a> - perl6-general anyone?</p>
<a name='This week in perl6-internals'></a><h1>This week in perl6-internals</h1>
<p>140 messages in this one. p6c lulled me into a false sense of security. Again,
you may notice a bewilderingly fast rate of change this summary. It turns out
that they weren't just working on Pugs at Leo's house. Perl 6 Hackathons give
great productivity.</p>
<a name='This is not your father's Parrot'></a><h2>This is not your father's Parrot</h2>
<p>There's been some serious work going on under the Parrot hood in the last two
weeks. The calling conventions have been drastically reworked and now uses 4
new opcodes, <code>set_args</code>, <code>set_returns</code>, <code>get_params</code> and <code>get_results</code>. At
the time of writing, IMCC doesn't give you full syntactic help with them, but
they're easy enough to use explicitly for the time being and the help is
getting there. Check out the PDD for details.</p>
<p>Also getting rejigged is the continuation/register frame
architecture. Taking advantage of the fact that this is a <i>virtual</i> machine,
we now have an unlimited number of registers per register frame. Combine this
with the new calling conventions, in which arguments are passed outside the
register frame and all of a sudden a full continuation becomes a simple pointer
to the register frame and everything gets saved as if by magic. Which opens up
a whole bunch of possibilities. Which has interesting implications for the
register allocator.</p>
<p><a href='http://svn.perl.org/parrot/trunk/docs/pdds/pdd03_calling_conventions.pod' target='_blank'>svn.perl.org</a> --
The new calling conventions</p>
<p><a href='http://use.perl.org/~chip/journal/' target='_blank'>use.perl.org</a> -- Chip's design notes</p>
<a name='New Generational GC scheme'></a><h2>New Generational GC scheme</h2>
<p>Alexandre Buisse posted his outline for a Google Summer of Code project to
implement a shiny new Generational Garbage Collection scheme. Discussion of
tunability and threading issues followed.</p>
<p><a href='http://groups.google.com/groups?threadm=41b037ed050608072845298c13@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Ordered Hashes -- more thoughts'></a><h2>Ordered Hashes -- more thoughts</h2>
<p>Steve Tolkin helpfully provided a summary of his thoughts about ordered
hashes: &quot;An ordered hash that does not support deletes could cause a user
visible bug. At a minimum it should support the special case of delete that is
supported by the Perl <code>each()</code> operator.&quot; Dan pointed out that reusing the
ordered hash code for anything other than the lexical pad it was specifically
implemented for was just looking for trouble.</p>
<p><a href='http://groups.google.com/groups?threadm=493A37523A8D17448240DA1DDDE924B4044D9040@MSGBOSCLD2WIN.DMN1.FMR.COM' target='_blank'>groups.google.com</a></p>
<a name='The thread that I really hoped Matt would be summarizing'></a><h2>The thread that I really hoped Matt would be summarizing</h2>
<p>AKA &quot;Attack of the 50 foot register allocator vs. the undead continuation
monster&quot;. Piers Cawley and Chip had something of a disagreement about
interactions between continuations and the register allocator. After discussion
on IRC it became apparent that they were talking past each other. The new 'the
register frame is the continuation' means that yes, the register allocator
definitely can't rely on being able to reuse registers that persist over
function calls, but that's all right because you can always grab more
registers.</p>
<p><a href='http://groups.google.com/groups?threadm=20050612111515.GA19372@tytlal.topaz.cx' target='_blank'>groups.google.com</a></p>
<a name='Missing MMD default functions'></a><h2>Missing MMD default functions</h2>
<p>Remember the missing Multimethod functions I mentioned last time. At the time
Chip hadn't ruled on whether taking them out was the Right Thing or not. He has
since ruled that it was.</p>
<p>This is probably not quite the right place to suggest this, but what the
heck. Maybe in future when user visible changes of this sort are planned they
should spend at least one release period deprecated and throwing warnings when
used.</p>
<p><a href='http://groups.google.com/groups?threadm=20050612113805.GC19372@tytlal.topaz.cx' target='_blank'>groups.google.com</a></p>
<a name='PGE, namespaced rules'></a><h2>PGE, namespaced rules</h2>
<p>William Coleda worried that PGE subrules appear to be globally scoped. It turns
out that Patrick worries too, but is currently in the process of thrashing out
how they should be scoped. He outlined his current thinking.</p>
<p><a href='http://groups.google.com/groups?threadm=42AA039B.8030000@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='PMCs and Objects question'></a><h2>PMCs and Objects question</h2>
<p>Klaas-Jan Stol wondered about the possibilities of overriding PMC behaviour
with Parrot classes. He outlined possibilities and wondered if he was
correct. Chip thought that it should be possible to implement (for instance)
Perl's datatypes in pure PIR, if only for debugging and fun. I'm still not
entirely sure if it's possible to make a ParrotClass that inherits from a PMC
though.</p>
<p><a href='http://groups.google.com/groups?threadm=42AA13D4.1010201@home.nl' target='_blank'>groups.google.com</a></p>
<a name='Software Transactional Memory'></a><h2>Software Transactional Memory</h2>
<p>It seems the design team have drunk deeply of the Software Transaction Memory
(STM) Kool Aid. STM is, to quote Chip, a &quot;wicked cool&quot; way of doing
threading. Expect a more fleshed out design document eventually.</p>
<p><a href='http://groups.google.com/groups?threadm=rt-3.0.11-36250-115576.12.1956142453591@perl.org' target='_blank'>groups.google.com</a></p>
<a name='Parrot bc'></a><h2>Parrot bc</h2>
<p>According to the configuration scripts, Parrot looks for the GNU version of
<b><i>bc</i></b> solely for checking that Parrot <b><i>bc</i></b> is working. Which is all very well,
but there is no Parrot implementation of <b><i>bc</i></b> in the SVN
repository. Apparently there's a broken version of it sat on Bernhard
Schmalhofer's local hard disk.</p>
<p>None of which addressed the issue of why, even with a 'working' version, the
tests needed to access GNU bc. Surely tests can be written statically, the only
time you'd need an authoritative version would be when you were adding
tests. Oops, editorializing again.</p>
<p><a href='http://groups.google.com/groups?threadm=1579101353.20050611234913@rblasch.org' target='_blank'>groups.google.com</a></p>
<a name='Substituting for PGE'></a><h2>Substituting for PGE</h2>
<p>Will Coleda wondered if it was possible to do substitutions with PGE yet. Yes,
sort of was Patrick's reply - you can substitute the first occurrence by
grabbing the match data and using substr. Everything else is for another day.</p>
<p><a href='http://groups.google.com/groups?threadm=42ABB476.3030109@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='Unexpected behaviour calling method'></a><h2>Unexpected behaviour calling method</h2>
<p>Klaas-Jan Stol had some problems implementing delegated addition. Apparently
it's because he got caught out by the signatures of the <code>__add method</code>. Also,
it's a really bad idea to delegate to a method called <code>__add</code> because Parrot
expects some very particularly behaviour from it. Think about calling it <code>add</code>
instead.</p>
<p><a href='http://groups.google.com/groups?threadm=42AC11C4.9000501@home.nl' target='_blank'>groups.google.com</a></p>
<a name='Parrot Goals and Priorities'></a><h2>Parrot Goals and Priorities</h2>
<p>Chip's put the slides of his Austrian Perl Workshop talk on the Parrot project
and it's priorities up on feather. Check them out, they're good.</p>
<p><a href='http://groups.google.com/groups?threadm=20050612103228.GI4954@tytlal.topaz.cx' target='_blank'>groups.google.com</a></p>
<p><a href='http://feather.perl6.nl/~chip/Chip_AWP.pdf' target='_blank'>feather.perl6.nl</a> -- slides</p>
<a name='New TODOs'></a><h2>New TODOs</h2>
<p>Will Coleda's been busy injecting a bunch of handy TODO items in the Parrot RT
system. Check 'em out, you might be able to do some of them.</p>
<p><a href='http://rt.perl.org/rt3/Search/Listing.html?Bookmark=FrT;@4' target='_blank'>rt.perl.org</a>|%8|$2|10$2|11$1|7$1|9%8|$11|DESCRIPTION$5|FIELD$8|OPERATOR$5|VALUE$18|Status != resolved$6|Status$2|!=$8|resolved%8|$11|DESCRIPTION$5|FIELD$8|OPERATOR$5|VALUE$18|Status != rejected$6|Status$2|!=$8|rejected%8|$11|DESCRIPTION$5|FIELD$8|OPERATOR$5|VALUE$14|Queue = parrot$5|Queue$1|=$6|parrot%8|$11|DESCRIPTION$5|FIELD$8|OPERATOR$5|VALUE$17|Subject LIKE TODO$7|Subject$4|LIKE$4|TODO$2|12$1|0$1|0&amp;TicketsSortBy=Created&amp;TicketsSortOrder=DESC&amp;RowsPerPage=50</p>
<a name='New list for pirate'></a><h2>New list for pirate</h2>
<p>Michal Wallace announced the creation of a new list for work on pirate, a
python compiler for parrot. So if python on parrot is your bag, I suggest you
sign up.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.62.0506122306160.11002@hydrogen.sabren.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://cornerhost.com/mailman/listinfo/pirate' target='_blank'>cornerhost.com</a></p>
<a name='Adding methods to existing classes'></a><h2>Adding methods to existing classes</h2>
<p>Patrick wondered how to add methods to existing classes. It turns out that the
trick is to use <code>find_type</code> instead of <code>findclass</code>. According to Leo,
<code>findclass</code> is deprecated.</p>
<p><a href='http://groups.google.com/groups?threadm=20050615203833.GC7329@pmichaud.com' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<p>Hmm... 1242 GMT+1 on Thursday as I write this and there are... oh... 246
messages in perl6-language. This could get sketchy...</p>
<a name='Reduce metaoperator on an empty list'></a><h2>Reduce metaoperator on an empty list</h2>
<p>Wow! The 'Reduce metaoperator on an empty list' discussion is still going.</p>
<p><a href='http://groups.google.com/groups?threadm=429D81CA.5010803@conway.org' target='_blank'>groups.google.com</a></p>
<a name='return() in pointy type blocks'></a><h2><code>return()</code> in pointy type blocks</h2>
<p>Much to my personal chagrin, it looks like <code>return()</code> inside a pointy block
will use an escape continuation and will probably be picky about making sure
that the pointy block is invoked from somewhere dynamically 'below' the block
it was created in. So no cunning tricks like:</p>
<pre>  sub call_with_current_continuation(Code $code) {
    $code({ return $^cc })
  }</pre>
<p>Which is probably a good thing...</p>
<p><a href='http://groups.google.com/groups?threadm=7ca3f0160506071407786d4fe5@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='caller and want'></a><h2><code>caller</code> and <code>want</code></h2>
<p>Gaal Yahas asked for clarification about the behaviour of the <code>caller</code>
builtin. Larry provided it.</p>
<p><a href='http://groups.google.com/groups?threadm=20050608182138.GZ14133@sike.forum2.org' target='_blank'>groups.google.com</a></p>
<a name='Musing on registerable event handlers for some specific events'></a><h2>Musing on registerable event handlers for some specific events</h2>
<p>Adam Kennedy hoped that Perl 6 would have some sort of minimal set of hooks for
handling events. (Personally I'd like a maximal set of hooks for anything that
changes the runtime structure of Perl, but I'm greedy like that). Larry said
that there would be such a thing, but that it wasn't designed yet. He appeared
to volunteer Adam as an initial designer. Discussion ensued, but there's no
concrete design yet. Slightly tangentially, Dan discussed his thoughts about a
Parrot notifications manager on his blog, which might be useful to some.</p>
<p><a href='http://groups.google.com/groups?threadm=20050608055816.11590.qmail@lists.develooper.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://www.sidhe.org/~dan/blog/archives/000414.html' target='_blank'>www.sidhe.org</a></p>
<a name='Speedbump placement'></a><h2>Speedbump placement</h2>
<p>In a thread discussing adding an <code>eval STRING</code> type behaviour to the right
hand side of a substitution, Larry said that &quot;Deciding where (and where not) to
put the speed bumps is a pretty good description of my job. It's impossible to
have a language without bumps, so I reserve the right to put the necessary
bumps where I think they'll do the most good and/or least harm.&quot;</p>
<p>Well, I thought that was worth reading by more than just the list
subscribers...</p>
<p><a href='http://groups.google.com/groups?threadm=20050611154428.GA9483@wall.org' target='_blank'>groups.google.com</a></p>
<a name='MMD vs. Anonymous parameter types referencing early parameters'></a><h2>MMD vs. Anonymous parameter types referencing early parameters</h2>
<p>Chip threw up his hands and despaired of ever efficiently implementing:</p>
<pre>  multi sub is_equal(Integer $a, Integer where { $_ == $a } $b: ) { 1 }</pre>
<p>Which is cute, but Chip claims you need Jedi Mind Powers if you want to make it
work.</p>
<p>The Thomas Sandlaß popped up to say that, actually there was already a language
called Cecil that allowed you to do precisely that sort of thing (called
Predicate Dispatch) and there were several efficient implementation
strategies. After a nudge from Chip he even provided a link. Larry thought it
eminently doable too and sketched out a strategy.</p>
<p>That strategy (which applies almost everywhere in Perl when you think about)
boils down to &quot;If you can't do it at compile time, do it at runtime (and
pretend you did it at runtime)&quot;.</p>
<p><a href='http://groups.google.com/groups?threadm=20050614130547.GN19372@tytlal.topaz.cx' target='_blank'>groups.google.com</a></p>
<a name='State of the Design Documents'></a><h2>State of the Design Documents</h2>
<p>Joshua Gatcomb worries about the state of the Synopses. He argued (quite
persuasively) that the thing to do would be to put the synopses into public
change control with global read access, but with write access limited to
@larry. The community could then provide new documentation in the form of
patches, which @larry would approve, reject or modify as appropriate. Which all
hangs on whether @larry has sufficient tuits.</p>
<p>Patrick pointed out that this already exists and that he had volunteered as
gatekeeper and patch dispatcher, but that there were very few patches so
far. But now you all know about it, right?</p>
<p>Some discussion followed about how things would be fleshed out, but the
important thing is the repository URL.</p>
<p><a href='http://groups.google.com/groups?threadm=941eab84050610095127f067b8@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://svn.perl.org/perl6/doc/trunk' target='_blank'>svn.perl.org</a> -- That document repository</p>
<a name='How much do we close over?'></a><h2>How much do we close over?</h2>
<p>Piers Cawley wants to be able to write code like:</p>
<pre>   sub foo { my $x = 1; return sub { eval $^codestring } }
   say foo().('$x'); # 1</pre>
<p>In perl 5 this would give warnings about an undeclared variable. Chip
maintained that this is actually the Right Thing. Piers understood that it may
not be the right thing in all cases, but he wanted to be able to make it work
when needed, if necessarily with predeclaration. There was some discussion, but
nothing from @larry yet.</p>
<p><a href='http://groups.google.com/groups?threadm=m2br6bgqja.fsf@obelisk.bofh.org.uk' target='_blank'>groups.google.com</a></p>
<a name='BEGIN {...} and IO'></a><h2><code>BEGIN {...}</code> and IO</h2>
<p>Ingo Blechschmidt noted that
that <code>BEGIN {...}</code> can be a little scary when you want to compile to
bytecode. Consider:</p>
<pre>  my $fh = BEGIN { open &quot;some_file&quot; err ... }</pre>
<p>Which is okay, until you have a version of perl that compiles that to
bytecode. The response ran along the lines of &quot;Don't do that then!&quot;.</p>
<p>Personally I'd write that as</p>
<pre>  my $fh = INIT { open &quot;some_file&quot; err ... }</pre>
<p>Assuming that my recollection that <code>INIT</code> blocks happen after the code is
compiled but before it starts to run. Or do I mean a <code>CHECK</code> block?</p>
<p><a href='http://groups.google.com/groups?threadm=d8k76i$veu$1@sea.gmane.org' target='_blank'>groups.google.com</a></p>
<a name='Anonymous macros'></a><h2>Anonymous macros</h2>
<p>Ingo also wondered if anonymous macros (at compile time) were allowed. Larry
had no problem with macros being first class objects during the compile. He
also went on to wonder if they should be multidispatch too...</p>
<p><a href='http://groups.google.com/groups?threadm=d8k896$3er$1@sea.gmane.org' target='_blank'>groups.google.com</a></p>
<a name='Perl defined Object, Array, Hash classes'></a><h2>Perl defined Object, Array, Hash classes</h2>
<p>Whilst toying with pugs, Eric Hodges managed to overwrite the internal
definition of the Object class. Which, obviously caused him pain. Larry reckons
we'll have constructs like:</p>
<pre>  class Object is augmented { ... };
  class Object is replaced { ... };</pre>
<p>(names up for grabs). My personally preference is for making 'augmented' the
default behaviour, but I'll live if I can have a pragma that makes it that
way.</p>
<p><a href='http://groups.google.com/groups?threadm=c88fd55d0506131157f65a915@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='%hash1 »...« %hash2'></a><h2><code>%hash1 »...« %hash2</code></h2>
<p>David Formosa wondered about the behaviour of hyperops when applied to a pair
of hashes. He wanted things arranged so that if you had a hash with keys in
common then those would be kept together by the hypering process. Luke agreed
that it would be useful (so do I for that matter) and then everyone started
talking about inner and outer joins and my database comprehension head is
swapped out at the moment...</p>
<p><a href='http://groups.google.com/groups?threadm=slrndasshv.1v7.dformosa@dformosa.zeta.org.au' target='_blank'>groups.google.com</a></p>
<a name='Binding slices'></a><h2>Binding slices</h2>
<p>With a small correction for syntactical niceness, Piers wondered if</p>
<pre>  my @y := @foo[0...][1]</pre>
<p>would bind @y to a 'column' of the two dimensional matrix represented by
@foo[][] so that writing to @y would affect @foo and vice versa. @larry hasn't
said anything yet.</p>
<p><a href='http://groups.google.com/groups?threadm=m2is0h6w85.fsf@obelisk.bofh.org.uk' target='_blank'>groups.google.com</a></p>
<a name='alias the RubyMeter'></a><h2><code>alias</code> the RubyMeter</h2>
<p>BÁRTHAZI Andras wondered if Perl 6 would have something like Ruby's rather
lovely <code>alias</code>. Larry thought you should be able to write a macro to do the
job, but wasn't entirely sure how exactly it would be done. Further discussion
centred on whether the feature was a good idea and whether it had the right
name. One school of thought thinks it already exists and is called <code>:=</code>, but
I'm not quite so sure.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.61.0506141355510.16763@wish.hu' target='_blank'>groups.google.com</a></p>
<a name='&amp;?CALLER::BLOCK vs. any hope of efficiency'></a><h2><code>&amp;?CALLER::BLOCK</code> vs. any hope of efficiency</h2>
<p>Chip hopes that using &amp;?CALLER::BLOCK as a general-purpose block promoter will
be disallowed unless the calling block has already marked itself as
callable. Larry thought that this would be okay, noting that he saw
&amp;?CALLER::BLOCK being mostly used for introspective purposes.</p>
<p><a href='http://groups.google.com/groups?threadm=20050614141308.GP19372@tytlal.topaz.cx' target='_blank'>groups.google.com</a></p>
<a name='Creating a web templating engine'></a><h2>Creating a web templating engine</h2>
<p>Wow! Perl 6 isn't even finished and already Andras is talking about writing a
web templating engine for it. He outlined his plan and wondered how to go about
implementing it. Ingo and he discussed it.</p>
<p><a href='http://groups.google.com/groups?threadm=Pine.LNX.4.61.0506141724160.25578@wish.hu' target='_blank'>groups.google.com</a></p>
<a name='Hyper concat'></a><h2>Hyper concat</h2>
<p>Thomas Klausner has been playing with <code>»~«</code> and uncovered some weirdness. Said
weirdness lead to a discussion of the default strings/patterns in <code>split</code> and <code>join</code>.</p>
<p><a href='http://groups.google.com/groups?threadm=20050614203240.GE25103@domm2.zsi.at' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=d8pnci$vhj$1@sea.gmane.org' target='_blank'>groups.google.com</a></p>
<a name='sub my_zip (...?) {}'></a><h2><code>sub my_zip (...?) {}</code></h2>
<p>Autrijus worried that the current Pugs implementation of <code>zip</code> was
signature less which, amongst other things, makes it uncompilable to Parrot. He
wondered what it's function signature should be. Larry came up with the
(admittedly slightly weird) goods.</p>
<p><a href='http://groups.google.com/groups?threadm=20050616094031.GA39606@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='Ignoring parameters'></a><h2>Ignoring parameters</h2>
<p>Gaal Yahas wondered if he'd be able to write a class method as:</p>
<pre>  method greet(Class undef:) {...}</pre>
<p>when his class methods made no references to the class object itself. Damian
thought that the syntax should actually be:</p>
<pre>  method greet(FooClass ::class) {...}</pre>
<p>and that subs and methods should complain about unused non-optional
non-invocant parameters. There's more, see the sub for details.</p>
<p><a href='http://groups.google.com/groups?threadm=20050616155552.GK14133@sike.forum2.org' target='_blank'>groups.google.com</a></p>
<a name='Scalar dereferencing'></a><h2>Scalar dereferencing</h2>
<p>Autrijus wondered about the semantics of a scalar reference in the face of
stringification and numification. He provided an example of Pugs' current
behaviour that may, or may not be correct. Larry described broken behaviour
before thinking again and describing the really correct behaviour along with a
summary of his raccoon problems.</p>
<p><a href='http://groups.google.com/groups?threadm=20050616195650.GA47798@aut.dyndns.org' target='_blank'>groups.google.com</a></p>
<a name='Taking given as read'></a><h2>Taking <code>given</code> as read</h2>
<p>Piers wondered how to write a function that would look like a <code>given</code> block to
any <code>when</code>s inside it. It turns out that you can't, yet. Damian thought that
the right way to do it would be:</p>
<pre>  sub factorial (Int $n is topic) {
    return 1 when 0;
    $n * factorial($n - 1);
  }</pre>
<p>Reading this again, I find myself wondering if the <code>return</code> is really
necessary.</p>
<p><a href='http://groups.google.com/groups?threadm=m28y19ir9a.fsf@obelisk.bofh.org.uk' target='_blank'>groups.google.com</a></p>
<a name='./method'></a><h2><code>./method</code></h2>
<p>People don't like <code>./method</code>. Other people don't like <code>.method</code> in
methods. I think we have what we have on the 'least worst option'
principle. But I would say that, I don't like <code>./method</code>.</p>
<a name='AUTOLOAD and $_'></a><h2><code>AUTOLOAD</code> and <code>$_</code></h2>
<p>Sam Vilain wondered about the prototype of <code>AUTOLOAD</code>. In the discussion that
ensued it was felt that whatever happened, <code>AUTOLOAD</code> should return a code ref
that <i>perl</i> would call.</p>
<p><a href='http://groups.google.com/groups?threadm=42B613A8.9070505@vilain.net' target='_blank'>groups.google.com</a></p>
<a name='Th-th-the-that's All Folks!'></a><h1>Th-th-the-that's All Folks!</h1>
<p>I remember now why I gave up writing summaries in the first place. First I
started missing weeks, which meant that there was so much to write up in the
fortnightly summaries, and then discussions got interesting, which meant
writing them took so much longer because there were hard things to understand
first.</p>
<p>Still, once in a while is refreshing, but I really should stop putting things
off until the last minute.</p>
<p>Ahem.</p>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.</p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Or, you can check out my website. Maybe now I'm back writing stuff I'll start
updating it.</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
<p>Vaguely pretty photos by me can be found at:</p>
<p><a href='http://www.flickr.com/photos/pdcawley' target='_blank'>www.flickr.com</a></p>
</div>
